<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>01_原型(prototype)</title>
</head>
<body>
<img src="https://img-blog.csdn.net/20181014202412732?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zODY1NDMzNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70"
     alt="">
<img src="https://img-blog.csdn.net/20181014210900962?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zODY1NDMzNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70"
     alt="">
<img src="https://segmentfault.com/img/remote/1460000019315299?w=536&h=386" alt="">
<!--
1. 函数的prototype属性(图)
  * 每个函数都有一个prototype属性, 它默认指向一个Object空对象(即称为: 原型对象)
  * 原型对象中有一个属性constructor, 它指（回）向函数对象
2. 给原型对象添加属性(一般都是方法)
  * 作用: 函数的所有实例对象自动拥有原型中的属性(方法)
-->
<script type="text/javascript">

    // 每个函数都有一个prototype属性, 它默认指向一个空对象(即称为: 原型对象)
    console.log(Date.prototype, typeof Date.prototype);
    // 原型对象中有一个属性constructor, 它指（回）向函数对象
    console.log(Date.prototype.constructor === Date);

    function fn() {}
    // 每个函数都有一个prototype属性, 它默认指向一个空对象(即称为: 原型对象)
    console.log(fn.prototype, typeof fn.prototype);
    // 原型对象中有一个属性constructor, 它指（回）向函数对象
    console.log(fn.prototype.constructor === fn);//true


</script>
</body>
</html>
